package com.ds.topmenu.tool;


//@Controller
//@RequestMapping(value = {"/action/tool/"})
//@MethodChinaName(cname = "工具")
//@MenuBarMenu(menuType = CustomMenuType.top, caption = "切换", index = 6)
//@Aggregation(type = AggregationType.menu)
public class ToolsAction {

//
//    @RequestMapping(value = {"debug"}, method = {RequestMethod.POST})
//    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName})
//    @CustomAnnotation(index = 1, caption = "预览工程", imageClass = "spafont spa-icon-previewpage")
//    @ResponseBody
//    public void debug(String sessionId, String projectName) {
//        ESDChrome chrome = getCurrChromeDriver();
//        try {
//            if (sessionId == null) {
//                sessionId = JDSServer.getInstance().getAdminUser().getSessionId();
//            }
//            URL rUrl = new URL("http://custom.raddev.cn/RAD/" + projectName + "/Debug.ModuleTree.view");
//            ESDEditor.getInstance().openNewWin(rUrl, sessionId);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//
//    @RequestMapping(value = {"BuildTree"}, method = {RequestMethod.POST})
//    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName})
//    @CustomAnnotation(index = 1, caption = "JAVA工程", imageClass = "spafont spa-icon-previewpage")
//    @ModuleAnnotation(dynLoad = true, caption = "JAVA树", imageClass = "bpmfont bpmgongzuoliuxitongpeizhi", index = 0)
//    @NavTreeViewAnnotation()
//    @ResponseBody
//    public TreeListResultModel<List<JavaTree>> getJavaTree(String sessionId, String projectName) {
//        TreeListResultModel<List<JavaTree>> result = new TreeListResultModel<>();
//        return result;
//    }
//
//    private List<JavaTree> loadDomainTree(DSMType dsmType, String projectVersionName) {
//        String javaPath = null;
//        if (projectVersionName != null && !projectVersionName.equals("")) {
//            GenJava genJava = GenJava.getInstance(projectVersionName);
//            javaPath = genJava.getJavaBuildPath();
//        }
//
//        File desFile = new File(javaPath);
//        List<JavaTree> childTrees = new ArrayList<>();
//        try {
//            switch (dsmType) {
//                case repository:
//                    List<RepositoryInst> repositoryInstList = null;
//                    repositoryInstList = DSMFactory.getInstance().getRepositoryManager().getRepositoryInstList(projectVersionName);
//                    for (RepositoryInst repositoryInst : repositoryInstList) {
//                        JavaPackage javaPackage = new JavaPackage(desFile, repositoryInst.getRepositoryId(), null, null);
//                        if (repositoryInst.getJavaSrcBeans().size() > 0 && javaPackage.listAllFile().size() > 0) {
//                            JavaTree tree = new JavaTree(javaPackage, repositoryInst, repositoryInst.getRepositoryId());
//                            childTrees.add(tree);
//                        }
//                    }
//                    break;
//                case view:
//                    List<ViewInst> viewInstList = DSMFactory.getInstance().getViewManager().getViewList(projectVersionName);
//                    for (ViewInst viewInst : viewInstList) {
//                        JavaPackage javaPackage = new JavaPackage(desFile, null, null, viewInst.getViewInstId());
//                        if (viewInst.getJavaSrcBeans().size() > 0 && javaPackage.listAllFile().size() > 0) {
//                            JavaTree tree = new JavaTree(javaPackage, viewInst, viewInst.getViewInstId());
//                            childTrees.add(tree);
//                        }
//                    }
//
//                    break;
//                case aggregation:
//                    List<DomainInst> aggInstList = DSMFactory.getInstance().getAggregationManager().getDomainInstList(projectVersionName);
//                    for (DomainInst domainInst : aggInstList) {
//                        JavaPackage javaPackage = new JavaPackage(desFile, null, domainInst.getDomainId(), null);
//                        if (domainInst.getJavaSrcBeans().size() > 0 && javaPackage.listAllFile().size() > 0) {
//                            JavaTree tree = new JavaTree(javaPackage, domainInst, domainInst.getDomainId());
//                            childTrees.add(tree);
//                        }
//                    }
//                    break;
//            }
//        } catch (JDSException e) {
//            e.printStackTrace();
//        }
//
//        return childTrees;
//
//
//    }
//
//
//    @RequestMapping(value = {"ViewPorject"}, method = {RequestMethod.POST})
//    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName})
//    @CustomAnnotation(index = 1, caption = "视图工程", imageClass = "spafont spa-icon-previewpage")
//    @ResponseBody
//    public void viewPorject(String sessionId, String projectName) {
//        ESDChrome chrome = getCurrChromeDriver();
//        try {
//            if (sessionId == null) {
//                sessionId = JDSServer.getInstance().getAdminUser().getSessionId();
//            }
//            ProjectVersion version = ESDFacrory.getESDClient().getProjectVersionByName(projectName);
//            URL rUrl = new URL("http://custom.raddev.cn/RAD/" + projectName + "/java.view.ViewJavaTree.view?projectVersionName=" + version.getVersionName());
//            ESDEditor.getInstance().openNewWin(rUrl, sessionId);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    @RequestMapping(value = {"split"})
//    @Split
//    @CustomAnnotation(index = 2)
//    @ResponseBody
//    public ResultModel<Boolean> split() {
//        ResultModel resultModel = new ResultModel();
//        return resultModel;
//    }
//
//
//    @RequestMapping(value = {"dsmDesigner"}, method = {RequestMethod.POST})
//    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName})
//    @CustomAnnotation(index = 3, caption = "DSM编辑", imageClass = "spafont spa-icon-conf")
//    @ResponseBody
//    public void dsmDesigner(String sessionId, String projectName) {
//        ESDChrome chrome = getCurrChromeDriver();
//        try {
//            if (sessionId == null) {
//                sessionId = JDSServer.getInstance().getAdminUser().getSessionId();
//            }
//            ProjectVersion version = ESDFacrory.getESDClient().getProjectVersionByName(projectName);
//            URL rUrl = new URL("http://custom.raddev.cn/RAD/DSMdsm/projectManager");
//
//            ESDEditor.getInstance().openNewWin(rUrl, sessionId);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    @RequestMapping(value = {"dsmManager"}, method = {RequestMethod.POST})
//    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName})
//    @CustomAnnotation(index = 4, caption = "模型管理", imageClass = "spafont spa-icon-conf")
//    @ResponseBody
//    public void dsmManager(String sessionId, String projectName) {
//        ESDChrome chrome = getCurrChromeDriver();
//        try {
//            if (sessionId == null) {
//                sessionId = JDSServer.getInstance().getAdminUser().getSessionId();
//            }
//            ProjectVersion version = ESDFacrory.getESDClient().getProjectVersionByName(projectName);
//            URL rUrl = new URL("http://" + version.getProject().getProjectName() + ".raddev.cn/RAD/" + version.getVersionName() + "/dsm.admin.Index.view?projectVersionName=" + version.getVersionName());
//
//            ESDEditor.getInstance().openNewWin(rUrl, sessionId);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    @RequestMapping(value = {"split6"})
//    @Split
//    @CustomAnnotation(index = 6)
//    @ResponseBody
//    public ResultModel<Boolean> split6() {
//        ResultModel resultModel = new ResultModel();
//        return resultModel;
//    }
//
//
//    @RequestMapping(method = RequestMethod.POST, value = "OtherProxy")
//    @CustomAnnotation(index = 7)
//    @MenuBarMenu(menuType = CustomMenuType.sub, caption = "切换", imageClass = "spafont spa-icon-alignw")
//    public OtherProxyAction getOtherProxyAction() {
//        OtherProxyAction resultModel = new OtherProxyAction();
//        return resultModel;
//    }
//
//
//    public ESDChrome getCurrChromeDriver() {
//        Object handleId = JDSActionContext.getActionContext().getParams("handleId");
//        ChromeDriver chrome = null;
//        if (handleId != null) {
//            chrome = ESDEditor.getInstance().getChromeDriverById(handleId.toString());
//        }
//        if (chrome == null) {
//            chrome = ESDEditor.getInstance().getCurrChromeDriver();
//        }
//        return new ESDChrome(chrome);
//    }


}
